#include "FenPrincipale.h"

FenPrincipale::FenPrincipale()
{
    setWindowIcon(QIcon(":/png/chat"));
    setWindowIconText("Coucou");

    // Création de la barre de menu.
    menuFichier = menuBar()->addMenu("&Fichier");
    QAction *actionQuitter = menuFichier->addAction("&Quitter");
    actionQuitter->setShortcut(QKeySequence("Ctrl+Q"));
    actionQuitter->setIcon(QIcon(":png/door"));
    actionQuitter->setStatusTip("Quitte le programme");
    QObject::connect(actionQuitter, SIGNAL(triggered()), qApp, SLOT(quit()));

    QMenu *sousMenuOuvrir = menuFichier->addMenu("&Ouvrir");
    QAction *actionOuvrirChat = sousMenuOuvrir->addAction("Chat");
    actionOuvrirChat->setIcon(QIcon(":/png/chat"));
    actionOuvrirChat->setStatusTip("Ouvre l'onglet de chat");
    QObject::connect(actionOuvrirChat, SIGNAL(triggered()), this, SLOT(ajouterOngletChat()));

    QAction *actionOuvrirServeur = sousMenuOuvrir->addAction("Heberger");
    actionOuvrirServeur->setIcon(QIcon(":/png/addServer"));
    actionOuvrirServeur->setStatusTip("Ouvre l'onglet du serveur");
    QObject::connect(actionOuvrirServeur, SIGNAL(triggered()), this, SLOT(ajouterOngletServeur()));

    /*
    QAction *actionOuvrirOpenGL = sousMenuOuvrir->addAction("OpenGL");
    actionOuvrirOpenGL->setIcon(QIcon("pic/box.png"));
    actionOuvrirOpenGL->setStatusTip("Ouvre l'onglet du serveur");
    QObject::connect(actionOuvrirOpenGL, SIGNAL(triggered()), this, SLOT(ajouterOngletOpenGL()));
    */


    //QMenu *menuEdition = menuBar()->addMenu("&Edition");
    //QMenu *menuAffichage = menuBar()->addMenu("&Affichage");

    // Création de la barre d'outils.
    toolBarFichier = addToolBar("ToolBar");
    toolBarFichier->setFloatable(false);
    toolBarFichier->addAction(actionQuitter);
    toolBarFichier->addSeparator();
    toolBarFichier->addAction(actionOuvrirServeur);
    toolBarFichier->addSeparator();
    toolBarFichier->addAction(actionOuvrirChat);
    //toolBarFichier->addSeparator();
    //toolBarFichier->addAction(actionOuvrirOpenGL);


    // Création du dock
    dock = new MonDock("Connexion", this);
    addDockWidget(Qt::RightDockWidgetArea, dock);
    dock->setFeatures(QDockWidget::NoDockWidgetFeatures);
    dock->setFixedWidth(310);

    // Création de la zone centrale.
    zoneCentrale = new QTabWidget(this);
    zoneCentrale->setTabsClosable(false);
    zoneCentrale->setMovable(true);
    maFenetreChat = new MaFenetreChat(zoneCentrale, dock->getClient());
    maFenetreWelcom = new MaFenetreWelcom(zoneCentrale);
    maFenetreServeur = new MaFenetreServeur(zoneCentrale, serveur);
    //maFenetreOpenGL = new MaFenetreOpenGL(zoneCentrale);
    zoneCentrale->addTab(maFenetreWelcom, "Welcom");

    // Création du widget Principal.
    // Il contient la zone centrale.
    mainWidget = new QWidget;
    mainLayout = new QHBoxLayout;
    mainLayout->addWidget(zoneCentrale);
    mainWidget->setLayout(mainLayout);

    setCentralWidget(mainWidget);

    // Création de la barre d'état.
    barreEtat = statusBar();
}

void FenPrincipale::chatRecevoirEnvoyerATous(const QString &message)
{
    maFenetreChat->recevoirEnvoyerATous(message);
}

void FenPrincipale::ajouterOngletChat()
{
    ajouterOnglet(maFenetreChat, "Chat");
    maFenetreChat->focusEcriture();
}

void FenPrincipale::ajouterOngletServeur()
{
    ajouterOnglet(maFenetreServeur, "Serveur");
}

void FenPrincipale::ajouterOngletOpenGL()
{
    ajouterOnglet(maFenetreOpenGL, "OpenGL");
}


void FenPrincipale::ajouterOnglet(QWidget * contenuOnglet, const QString  &nomOnglet)
{
    int index = zoneCentrale->indexOf(contenuOnglet);
    if(index == -1)
    {
        index = zoneCentrale->addTab(contenuOnglet, nomOnglet);
        zoneCentrale->setCurrentWidget(contenuOnglet);
    }
    else
    {
        zoneCentrale->setCurrentIndex(index);    }
}



